package top.cjwtx.holy.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import top.cjwtx.holy.pojo.dto.RoleDTO;
import top.cjwtx.holy.pojo.po.SysRole;


import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author jobob
 * @since 2020-03-17
 */
public interface SysRoleDao extends BaseMapper<SysRole> {

    /**
     * 根据用户id查询权限角色
     * @param userId
     * @return
     */
    List<RoleDTO> listSysRoleDTOByUserId(long userId);

    /**
     * 查找所有权限角色
     * @return
     */
    List<RoleDTO> listRoleDTO();

    /**
     * 根据用户id删除用户的所有权限
     * @param userId
     */
    void deleteUserRoleByUserId(Long userId);

    /**
     * 新增用户权限
     * @param userId 用户id
     * @param roleId 权限id
     */
    void insertUserRoleByUserId(Long userId, Integer roleId);

//    /**
//     * 条件搜索角色
//     * @param roleSearchDto 条件
//     * @param page 页码
//     * @param pageSize 页大小（单页显示数据条数）
//     * @return
//     */
//    List<RoleDTO> selectRole(RoleSearchDto roleSearchDto, int index, int pageSize);

//    /**
//     * 条件统计角色
//     * @param roleSearchDto
//     * @return
//     */
//    int countRole(@Param("roleSearchDto") RoleSearchDto roleSearchDto);

    /**
     * 根据角色id查询角色
     * @param roleId
     * @return
     */
    RoleDTO selectRoleById(Long roleId);

    /**
     * 根据角色id删除归属的资源权限
     * @param roldId
     */
    void deleteRole_JurisdictionByRoleId(Long roldId);

    /**
     * 赋予角色资源权限
     * @param roldId
     * @param jurisdictionId
     */
    void insertRole_JurisdictionByRoleId(Long roldId, Long jurisdictionId);
}
